package cn.test.app.a.api;

import cn.ifloat.brick.sprofile.common.ConditionServerMode;
import cn.test.app.a.consts.CloudServerNamed;
import cn.test.app.a.domain.Ord;
import cn.test.app.a.fallback.OrderFallBack;
import cn.test.app.a.vo.OrdVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.context.annotation.Lazy;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@Lazy
@ConditionServerMode
@FeignClient(name = CloudServerNamed.EXAMPLE_SERVER_NAME, fallback = OrderFallBack.class)

public interface OrderApi {

    /**
     * 新增订单详情
     *
     * @param ord 订单详情
     */
    @PostMapping("/add")
    public void add(@RequestBody Ord ord);

    /**
     * 删除订单
     *
     * @param id 订单ID
     * @return 结果
     */
    @DeleteMapping("/del/{id}")
    public Boolean del(@PathVariable("id") Long id);

    /**
     * 修改订单信息
     *
     * @param ord 订单详情
     * @return 结果
     */
    @PutMapping("/edit")
    public Boolean edit(@RequestBody Ord ord);


    /**
     * 条件查询订单列表
     *
     * @return 列表
     */
//    @PostMapping(value = "/list", consumes = MediaType.APPLICATION_JSON_VALUE)
    @PostMapping(value = "/list")
    List<Ord> list(@RequestBody OrdVo ordVo);
//    List<Ord> list();

    /**
     * 查询订单列表
     *
     * @return 列表
     */
    @GetMapping("ord/list")
    List<Ord> ordList();
}
